// game.js
const words = {
  '普通词汇': {
    '简单': ['电视', '手机', '电脑', '书本', '衣服', '眼镜', '椅子', '汽车', '足球', '篮球'],
    '中等': ['键盘', '鼠标', '耳机', '窗帘', '帽子', '手表', '书包', '遥控器', '打火机', '冰箱'],
    '困难': ['指南针', '灭火器', '望远镜', '放大镜', '显微镜', '吹风机', '洗衣机', '微波炉', '吸尘器', '电热水壶']
  },
  '电影': {
    '简单': ['功夫', '战狼', '哪吒', '复仇者', '蜘蛛侠', '速度与激情', '星球大战', '哈利波特', '变形金刚', '泰坦尼克号'],
    '中等': ['寄生虫', '盗梦空间', '少年的你', '流浪地球', '西虹市首富', '美人鱼', '唐人街探案', '釜山行', '摔跤吧爸爸', '暮光之城'],
    '困难': ['当幸福来敲门', '肖申克的救赎', '海上钢琴师', '阿甘正传', '放牛班的春天', '霸王别姬', '红高粱', '黄金时代', '无间道', '大话西游']
  },
  '明星': {
    '简单': ['刘德华', '周杰伦', '成龙', '李连杰', '周星驰', '范冰冰', '杨幂', '迪丽热巴', '杨洋', '王俊凯'],
    '中等': ['王力宏', '邓超', '刘亦菲', '林志玲', '彭于晏', '陈伟霆', '鹿晗', '赵丽颖', '吴亦凡', '黄渤'],
    '困难': ['巩俐', '章子怡', '梁朝伟', '张艺谋', '王家卫', '张国荣', '李安', '姜文', '徐峥', '陈道明']
  },
  '成语': {
    '简单': ['一心一意', '对牛弹琴', '画蛇添足', '守株待兔', '掩耳盗铃', '拔苗助长', '亡羊补牢', '班门弄斧', '入木三分', '望梅止渴'],
    '中等': ['对症下药', '一鸣惊人', '卧薪尝胆', '自相矛盾', '纸上谈兵', '四面楚歌', '杯弓蛇影', '背水一战', '草木皆兵', '叶公好龙'],
    '困难': ['刻舟求剑', '黔驴技穷', '滥竽充数', '狡兔三窟', '闻鸡起舞', '完璧归赵', '负荆请罪', '程门立雪', '凿壁偷光', '愚公移山']
  }
};

Page({
  data: {
    gameTime: 60, // 默认60秒
    wordCategory: '普通词汇',
    difficulty: '中等',
    timeLeft: 60,
    score: 0,
    currentWord: '',
    correctWords: [],
    skippedWords: [],
    isPaused: false,
    gameOver: false,
    progress: 100, // 进度条百分比
  },

  onLoad(options) {
    // 获取游戏设置
    if (options.time) {
      this.setData({
        gameTime: parseInt(options.time),
        timeLeft: parseInt(options.time)
      })
    }
    
    if (options.category) {
      this.setData({
        wordCategory: options.category
      })
    }
    
    if (options.difficulty) {
      this.setData({
        difficulty: options.difficulty
      })
    }
    
    // 初始化词语
    this.generateWord()
    
    // 开始游戏倒计时
    this.startTimer()
  },

  // 生成一个新词语
  generateWord() {
    const { wordCategory, difficulty } = this.data
    const categoryWords = words[wordCategory][difficulty]
    
    // 随机选取一个词语
    const randomIndex = Math.floor(Math.random() * categoryWords.length)
    const newWord = categoryWords[randomIndex]
    
    this.setData({
      currentWord: newWord
    })
  },

  // 开始计时器
  startTimer() {
    this.timer = setInterval(() => {
      if (this.data.isPaused) return
      
      if (this.data.timeLeft > 0) {
        this.setData({
          timeLeft: this.data.timeLeft - 1,
          progress: (this.data.timeLeft - 1) / this.data.gameTime * 100
        })
        
        // 时间不足10秒时显示警告
        if (this.data.timeLeft <= 10) {
          this.playWarningEffect()
        }
      } else {
        // 游戏结束
        this.endGame()
      }
    }, 1000)
  },

  // 猜对了
  handleCorrect() {
    // 增加分数
    this.setData({
      score: this.data.score + 1,
      correctWords: [...this.data.correctWords, this.data.currentWord]
    })
    
    this.playCorrectEffect()
    this.generateWord()
  },

  // 跳过
  handleSkip() {
    this.setData({
      skippedWords: [...this.data.skippedWords, this.data.currentWord]
    })
    
    this.playSkipEffect()
    this.generateWord()
  },

  // 暂停游戏
  pauseGame() {
    this.setData({
      isPaused: true
    })
  },

  // 继续游戏
  resumeGame() {
    this.setData({
      isPaused: false
    })
  },

  // 游戏结束
  endGame() {
    clearInterval(this.timer)
    this.setData({
      gameOver: true
    })
    
    // 跳转到结果页面
    wx.navigateTo({
      url: `/pages/result/result?score=${this.data.score}&correct=${JSON.stringify(this.data.correctWords)}&skipped=${JSON.stringify(this.data.skippedWords)}`
    })
  },

  // 播放正确效果
  playCorrectEffect() {
    try {
      const settings = wx.getStorageSync('gameSettings')
      if (settings && settings.soundEnabled) {
        // 播放声音
      }
      if (settings && settings.vibrationEnabled) {
        wx.vibrateShort()
      }
    } catch (e) {
      console.error('读取设置失败', e)
    }
  },

  // 播放跳过效果
  playSkipEffect() {
    try {
      const settings = wx.getStorageSync('gameSettings')
      if (settings && settings.soundEnabled) {
        // 播放声音
      }
      if (settings && settings.vibrationEnabled) {
        wx.vibrateShort()
      }
    } catch (e) {
      console.error('读取设置失败', e)
    }
  },

  // 播放时间警告效果
  playWarningEffect() {
    try {
      const settings = wx.getStorageSync('gameSettings')
      if (settings && settings.soundEnabled) {
        // 播放声音
      }
    } catch (e) {
      console.error('读取设置失败', e)
    }
  },

  onUnload() {
    // 清除计时器
    if (this.timer) {
      clearInterval(this.timer)
    }
  }
}) 